const express = require("express")
const app = express() //创建网站服务器
const fs = require("fs")
const path = require("path")

const util =require("util")
var morgan = require('morgan')       // 打印日志

// 配置静态目录
app.use(express.static(path.join(__dirname, 'public')))

//连接数据库
require('./tool/connect');

// 开启跨域
var cors = require('cors')
app.use(cors())

var bodyParser = require('body-parser');

//配置最大上传
app.use(bodyParser.json({ limit: '100mb' })); // for parsing application/json
app.use(bodyParser.urlencoded({ limit: '100mb', extended: true })); // for parsing application/x-www-form-urlencoded

//配置body-parser插件
app.use(express.urlencoded({
    extended: false
})) //这是解析表单的

app.use(express.json()) //这是解析json格式的

app.use(morgan(':method :url :status :response-time ms'))

app.get("/ceshi", async (req, res) => {
    let obj = [
        {
            name: "北京",
            quantity1: 1234561,
            quantity2: 123545,
        },
        {
            name: "天津",
            quantity1: 12345691,
            quantity2: 123545,
        },
        {
            name: "河北",
            quantity1: 12345561,
            quantity2: 1235415,
        },
        {
            name: "山西",
            quantity1: 12345361,
            quantity2: 1235451,
        },
        {
            name: "内蒙古",
            quantity1: 12345651,
            quantity2: 1235435,
        },
    ]

    for (let i = 0; i < obj.length; i++) {
        obj[i].difference = obj[i].quantity1 - obj[i].quantity2
    }

    res.json({
        code: 0,
        msg: "获取数据成功",
        data: obj
    })
})

// 利用一个接口返回不同的图片
app.get("/randomImg", (req, res) => {
    // json返回
    if (req.query.type) {
        return res.send("https://tse1-mm.cn.bing.net/th/id/OIP.hQhMO0Vs5v9TCl581A5QaQHaJQ?pid=ImgDet&rs=1")
    }
    // 直接重定向地址，img src直接可以使用
    res.redirect("https://tse1-mm.cn.bing.net/th/id/OIP.hQhMO0Vs5v9TCl581A5QaQHaJQ?pid=ImgDet&rs=1")
})

app.get("/updata", async (req, res, next) => {
    
    res.json({
        code: 200,
        msg: "ok",
        data: {
            version: '1.0.5',
            updataurl: "http://139.155.253.86/uniapp_weg/__UNI__AAD09BF.wgt"
        }

    })
})

// 引入index路由文件
const index = require('./router/index')
app.use('/', index)

// 404 处理 表示没有接口可以匹配
app.use((req, res, next) => {
    res.status(404).json({
        code: 404,
        msg: "没有api可以匹配"
    })
})

//错误请求的处理这个必须在后面
// 这儿的错误数据 来源于具体的路由的 catch(err){ next(err) }
app.use((err, req, res, next) => {
    // 错误日志收集
    fs.appendFile("./data/err.txt", err, (err, data) => {
        if (err) {
            return res.json({
                msg: util.format(err)
            })
        }
    })
    res.status(500).json({
        code: 500,
        msg: util.format(err)
    })
})

// 创建默认的数据
require("./init/createAdmin")



let sort = 5000
app.listen(sort, () => {
    global.initUrl = __dirname
    console.log(`http://127.0.0.1:${sort}   开启成功`)
})